// 风控模块相关类型定义

// ===== 黑名单管理相关类型 =====

// IP黑名单查询参数
export interface RiskBlackPageParam {
  page: number
  pageSize: number
  search?: string // 搜索关键词
  state?: number // 状态：0-失效 1-生效
}

// 黑名单实体类
export interface RiskBlack {
  id?: number // 黑名单ID
  type?: number // 类型：1-IP黑名单 2-用户黑名单
  ip?: string // IP地址
  buyerUserId?: number // 用户ID
  state?: boolean // 状态：false-失效 true-生效
  createTime?: string // 创建时间
  updateTime?: string // 更新时间
  [key: string]: any // 允许其他字段
}

// 用户黑名单返回数据实体类
export interface RiskUserBlack {
  id?: number // 黑名单ID
  type?: number // 类型：1-IP黑名单 2-用户黑名单
  buyerUserId?: number // 用户ID
  name?: string // 用户昵称
  openId?: string // 微信openId
  phone?: string // 手机号
  state?: boolean // 状态：false-失效 true-生效
  createTime?: string // 创建时间
  updateTime?: string // 更新时间
  [key: string]: any // 允许其他字段
}

// 新增/更新黑名单参数
export interface RiskBlackSaveParam {
  type: number // 类型：1-IP黑名单 2-用户黑名单
  ip?: string // IP地址
  buyerUserId?: number // 用户ID
  state?: boolean // 状态：false-失效 true-生效
}

// 更新黑名单参数
export interface RiskBlackUpdateParam extends RiskBlackSaveParam {
  id: number // 黑名单ID
}

// 删除黑名单参数
export interface RiskBlackDeleteParam {
  id: number // 黑名单ID
}

// ===== 规则管理相关类型 =====

// 规则实体类
export interface RiskRule {
  id?: number // 主键id
  ruleName?: string // 规则名称
  status?: number // 状态：0-未发布 1-已发布
  ruleType?: number // 触发条件 1：满足任一一项  2：满足所有
  rulePlaceOrderLimit?: string // 创建订单数限制规则，json保存参数
  ruleWaitPayLimit?: string // 待付款订单数限制规则，json保存参数
  ruleSkuLimit?: string // 单sku商品采购数限制规则，json保存参数
  rulePostSaleLimit?: string // 售后规则，json保存参数
  ruleSwitchPostSale?: number // 售后规则开关  0关闭 1开启
  ruleSwitchSku?: number // 单sku商品规则开关 0关闭 1开启
  ruleSwitchPlaceOrder?: number // 下单规则开关 0关闭 1开启
  ruleSwitchWaitPay?: number // 待付款规则开关 0关闭 1开启
  createTime?: string // 创建时间
  updateTime?: string // 修改时间
}

// 规则查询参数
export interface RiskRulePageParam {
  page: number // 页码
  pageSize: number // 每页条数
}

// 新增规则参数
export interface RiskRuleSaveParam {
  ruleName: string // 规则名称
  status: number // 状态：0-未发布 1-已发布
  ruleType: number // 触发条件 1：满足任一一项  2：满足所有
  rulePlaceOrderLimit?: string // 创建订单数限制规则，json保存参数
  ruleWaitPayLimit?: string // 待付款订单数限制规则，json保存参数
  ruleSkuLimit?: string // 单sku商品采购数限制规则，json保存参数
  rulePostSaleLimit?: string // 售后规则，json保存参数
  ruleSwitchPostSale?: number // 售后规则开关  0关闭 1开启
  ruleSwitchSku?: number // 单sku商品规则开关 0关闭 1开启
  ruleSwitchPlaceOrder?: number // 下单规则开关 0关闭 1开启
  ruleSwitchWaitPay?: number // 待付款规则开关 0关闭 1开启
}

// 更新规则参数
export interface RiskRuleUpdateParam extends RiskRuleSaveParam {
  id: number // 规则ID
}

// 删除规则参数
export interface RiskRuleDeleteParam {
  id: number // 规则ID
}

//搜索用户信息参数
export interface UserSearchParam {
  page: number // 页码
  pageSize: number // 每页条数
  searchKey?: string // 搜索关键词(buyerUserId/openId/昵称/手机号)
}

//搜索用户信息响应
export interface CereBuyerUser {
  buyerUserId?: number // 客户id
  name?: string // 昵称
  sex?: string // 性别
  birthday?: string // 生日
  age?: number // 年龄
  wechatOpenId?: string // 微信openID
  wechatUnionId?: string // 微信unionId
  wechatName?: string // 微信昵称
  wechatNumber?: string // 微信号
  aliUserId?: string // 支付宝小程序用户id
  phone?: string // 注册手机号
  password?: string // 密码
  headImage?: string // 头像图片
  backgroundImage?: string // 背景图片
  state?: number // 是否启用 1-是 0-否
  ifBlack?: number // 是否加入黑名单 1-是 0-否
  remark?: string // 备注/个人简介
  token?: string // 请求token
  memberLevelId?: number // 会员等级id
  memberLevelName?: string // 会员等级名称
  growth?: number // 成长值
  credit?: number // 积分
  terminal?: number // 注册来源 0-未知 1-APP 2-小程序 3-H5 4-支付宝小程序 5-PC
  nextLevelGrowth?: number // 下一级需要的成长值
  nextLevelName?: string // 下一级会员等级名称
  registerIp?: string // 注册时的ip
  lastLoginIp?: string // 上次登录的ip
  channelCode?: string // 渠道编码
  createTime?: string // 创建时间
  updateTime?: string // 更新时间
  userAccount?: string // 六位用户账号
  userQrCode?: string // 客户二维码
  province?: string // 用户所在省份
  city?: string // 用户所在城市
  [key: string]: any // 允许其他字段
}
